package com.placement.app.service;

import java.util.ArrayList;

import com.placement.app.model.Address;
import com.placement.app.model.ZipLocation;

/**
 * @Purpose: This Service will provide zip code related services like 
 * 		1) Return the list of zipcodes from a specific zipcode based on distance
 * 		2) Will provide zip code based on local area selected
 * 		3) It will verify the zipcode entered by the user 
 * @author ns_nagar
 *
 */

public interface LocationService {
		public ArrayList<String> getZipCodeByDistance(int zipcode, int distance);
		
		/**
		 * This process converts valid address to zipcode.
		 * @param address
		 * @return
		 */
		public ZipLocation getZipCode(Address address);
		
		public boolean isvalidZipCode(int zipcode);
		/*
		 * This method will provide the zipcode of the location passed as paramter
		 */
		public ZipLocation getLocation(String location);
		
		/**
		 * This method will return the list of zipcode that
		 * will be in the specified range
		 * @param loc
		 * @param range
		 */
		public ArrayList<ZipLocation> getZipCodesInRange(ZipLocation loc, int range);
}
